
Page({

  /**
   * 页面的初始数据
   */
  data: {

    travelogueId: 0,
    upVotesCount: 0,
    isLiked: false,
    contentHeight: '800px',
    swiperHeight: '1000px',
    collectOrNot: 0, // 0未收藏  1已收藏
    recommendTravelogueList: [], //发现
    travelogueList: [], //关注
    info: '',


    // tab选项
    tabList: [{
        title: "关注",
        index: "0",
      },
      {
        title: "发现",
        index: "1",
      }
    ],


    travelogues: [], // 游记数据
    tabsId: 1, //默认选型为发现
    topicId: 0,
    topicTabList: [
      // {
      //   title: "推荐",
      //   index: "0",
      // },
      // {
      //   title: "暑期旅游",
      //   index: "1",
      // },
      // {
      //   title: "毕业旅行",
      //   index: "2",
      // },
      // {
      //   title: "看海",
      //   index: "3",
      // },
      // {
      //   title: "祖国大好河山",
      //   index: "4",
      // }
    ],

  },
 
  //拿到话题名称
  fetchTopicTabList: function () {
    const url = 'http://localhost:8080/subject/subject_list/SubjectList';
    wx.request({
      url: url,
      method: 'GET',
      header: {
        Authorization: getApp().globalData.authorization
      },
      success: (resp) => {
        console.log("所有话题数据:", resp.data);
        // 设置话题数据
        this.setData({
          topicTabList: resp.data.rows
        });
      },
      fail: (error) => {
        console.error('请求失败:', error);
      }
    });
  },

  //与话题有关的游记
  fetchTraveloguesByTopicId: function (topicId) {
    const url = 'http://localhost:8080/subject/subject_list/selectTravelogue';

    wx.request({
      url: url,
      method: 'GET',
      header: {
        Authorization: getApp().globalData.authorization
      },
      success: (resp) => {
        console.log("与话题关联的游记数据:", resp.data);
        // 设置游记数据
        this.setData({
          travelogues: resp.data
        });
      },
      fail: (error) => {
        console.error('请求失败:', error);
      }
    });
  },

  search() {
    wx.navigateTo({
      url: '/pages/index/search/searchResult/searchResult?info=' + this.data.info,
      data: {
        info: this.data.info
      }
    })
  },
  //顶部发现、关注的tab事件
  // 滑动时触发的事件
  slideOn(e) {
    // 拿到当前索引并动态改变
    this.setData({
      tabsId: e.detail.current
    })
    this.getHeight()
  },

  //点击tab时触发
  tabsOn(e) {
    this.setData({
      //拿到当前索引并动态改变
      tabsId: e.currentTarget.dataset.idx
    })
    this.getHeight()
  },

  //主题分类的tab事件
  // 滑动时触发的事件
  topicSlideOn(e) {
    // 拿到当前索引并动态改变
    this.setData({
      topicId: this.data.topicTabList[e.detail.current].id
    })
    // 发起请求获取新的游记数据
    this.fetchTraveloguesByTopicId(this.data.topicId);
  },

  //点击tab时触发
  topicTabsOn(e) {
    this.setData({
      //拿到当前索引并动态改变
      topicId: e.currentTarget.dataset.idx
    })
    // 发起请求获取新的游记数据
    this.fetchTraveloguesByTopicId(this.data.topicId);
  },

  getHeight() { //根据不同的类名，去获取不同的内容高度
    // 获取元素高度
    let query = wx.createSelectorQuery();
    //选择id
    let that = this;
    if (this.data.tabsId == 1) {
      var str = 'discovery'
    }
    if (this.data.tabsId == 0) {
      var str = 'travelogueListView'
    }
    query.select('.' + str).boundingClientRect(function (e) {
      that.setData({
        swiperHeight: e.height + 20 + 'px'
      })
    }).exec();
    // 获取发现页底部展示内容高度
    wx.createSelectorQuery().select('.recommendView').boundingClientRect(function (e) {
      that.setData({
        contentHeight: e.height + 20 + 'px'
      })
    }).exec();
  },

  // 喜欢
  changeLike() {
    console.log('collectOrNot', this.data.collectOrNot)
    if (this.data.collectOrNot != 1) {
      // 对接后端数据库发请求...点赞数改变
      this.setData({
        collectOrNot: 1
      })
    } else {
      // 对接后端数据库发请求...点赞数改变
      this.setData({
        collectOrNot: 0
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  fetchUpVotesCount: function () {
    const url = 'http://localhost:8080//travelogue/travelogueUp/count';

    wx.request({
      url: url,
      method: 'GET',
      header: {
        Authorization: getApp().globalData.authorization
      },
      success: (resp) => {
        console.log("点赞数:", resp.data);

        // 设置点赞数
        this.setData({
          upVotesCount: resp.data
        });
      },
      fail: (error) => {
        console.error('请求失败:', error);
      }
    });
  },
 

  onLoad: function (options) {
    // 加载话题列表
    this.fetchTopicTabList();

    // 如果有话题ID参数，则加载该话题下的游记
    const topicId = options.topicId;
    if (topicId) {
      this.setData({
        topicId: topicId
      });

      // 发起请求获取与话题关联的游记数据
      this.fetchTraveloguesByTopicId(topicId);
    }

    wx.request({
      url: 'http://localhost:8080/travelogue/travelogue/list',
      method: 'GET',
      header: {
        Authorization: getApp().globalData.authorization
      },
      success: (resp) => {
        console.log(resp.data)
        this.setData({
          recommendTravelogueList: resp.data.rows
        })
      }
    })

    wx.request({
      url: 'http://localhost:8080/travelogue/travelogue/list',
      method: 'GET',
      header: {
        Authorization: getApp().globalData.authorization
      },
      success: (resp) => {
        console.log(resp.data)
        this.setData({
          travelogueList: resp.data.rows
        })
      }
    })


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})